package com.xxl.dao.blog;

import com.xxl.dto.BlogDto;
import com.xxl.dto.HomeDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 主页展示的blog
 * 配合blog表不可自己删除或者增加
 *
 * @author xxl
 * @date 2023/3/29
 */
@Mapper
public interface HomBlogMapper {
    /**
     * 如果是根据标题查找blog，那就是搜索
     * 如果是日期就是主页展示blog
     * 如果是都是空参代表查询全部,这需要管理员权限
     * 注意：本接口所有的查询返回的数据为
     * homeDto的属性
     * <result property="date" column="home_blog_date"/>
     * <result property="blogUuid" column="blog_content_blog_uuid"/>
     * homeDto的BlogDto属性
     * <result property="username" column="user_blog_username"/>
     * <result property="blogUuid" column="blog_content_blog_uuid"/>
     * <result property="simpleContent" column="blog_content_simple_content"/>
     * <result property="tile" column="blog_content_title"/>
     * @param title
     * @param date 根据时间查询，都需要分页的
     * @return List<HomeDto>
     * @author xxl
     */
    List<HomeDto> queryBlogByTitle(@Param("title") String title, @Param("date") String date);

    /**
     * 根据id修改日期或者uuid
     *
     * @param uuid
     * @param homeDto
     * @return int
     */
    int modifyDateByUuid(@Param("uuid") String uuid, HomeDto homeDto);

    /**
     * 根据uuid删除
     *
     * @param uuid
     * @return int
     */
    int deleteBlogByUuid(@Param("uuid") String uuid);

    /**
     * 增加一条记录
     *
     * @param dto
     * @return int
     */
    int addBlog(HomeDto dto);

    /**
     * 通过uuid查询博客库的博客
     *
     * @param uuid
     * @return HomeDto
     */
    HomeDto queryBLogByUuid(@Param("uuid") String uuid);

}
